package thread;

//最简单的线程案例
class MyThread extends Thread {
    @Override
    public void run() {
        while(true){
            System.out.println("hello thread");
            //循环中加上休眠操作，让循环每循环一次都休息一会，避免cpu消耗过大
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }

    }

}

public class Demo1 {
    //main方法是主线程
    public static void main(String[] args) {
        MyThread t=new MyThread();
        //调用start就会进入进程内部，创建出一个新的线程，新的线程就会执行刚才run里的代码
        //手动创建了新线程
        t.start();
        //没有手动调用，最终这个方法被系统/库/框架调用
        //此时这种方法，就称为回调函数

        while(true){
            System.out.println("hello main");
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}
